(0) Obligation:
Runtime Complexity TRS:
The TRS R consists of the following rules:
active(f(0)) → mark(cons(0, f(s(0))))
active(f(s(0))) → mark(f(p(s(0))))
active(p(s(X))) → mark(X)
mark(f(X)) → active(f(mark(X)))
mark(0) → active(0)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(p(X)) → active(p(mark(X)))
f(mark(X)) → f(X)
f(active(X)) → f(X)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
p(mark(X)) → p(X)
p(active(X)) → p(X)
Rewrite Strategy: INNERMOST
(1) CpxTrsToCdtProof (BOTH BOUNDS(ID, ID) transformation)
Converted CpxTRS to CDT
(2) Obligation:
Complexity Dependency Tuples Problem
Rules:
active(f(0)) → mark(cons(0, f(s(0))))
active(f(s(0))) → mark(f(p(s(0))))
active(p(s(z0))) → mark(z0)
mark(f(z0)) → active(f(mark(z0)))
mark(0) → active(0)
mark(cons(z0, z1)) → active(cons(mark(z0), z1))
mark(s(z0)) → active(s(mark(z0)))
mark(p(z0)) → active(p(mark(z0)))
f(mark(z0)) → f(z0)
f(active(z0)) → f(z0)
cons(mark(z0), z1) → cons(z0, z1)
cons(z0, mark(z1)) → cons(z0, z1)
cons(active(z0), z1) → cons(z0, z1)
cons(z0, active(z1)) → cons(z0, z1)
s(mark(z0)) → s(z0)
s(active(z0)) → s(z0)
p(mark(z0)) → p(z0)
p(active(z0)) → p(z0)
Tuples:
ACTIVE(f(0)) → c(MARK(cons(0, f(s(0)))), CONS(0, f(s(0))), F(s(0)), S(0))
ACTIVE(f(s(0))) → c1(MARK(f(p(s(0)))), F(p(s(0))), P(s(0)), S(0))
ACTIVE(p(s(z0))) → c2(MARK(z0))
MARK(f(z0)) → c3(ACTIVE(f(mark(z0))), F(mark(z0)), MARK(z0))
MARK(0) → c4(ACTIVE(0))
MARK(cons(z0, z1)) → c5(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0))
MARK(s(z0)) → c6(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0))
MARK(p(z0)) → c7(ACTIVE(p(mark(z0))), P(mark(z0)), MARK(z0))
F(mark(z0)) → c8(F(z0))
F(active(z0)) → c9(F(z0))
CONS(mark(z0), z1) → c10(CONS(z0, z1))
CONS(z0, mark(z1)) → c11(CONS(z0, z1))
CONS(active(z0), z1) → c12(CONS(z0, z1))
CONS(z0, active(z1)) → c13(CONS(z0, z1))
S(mark(z0)) → c14(S(z0))
S(active(z0)) → c15(S(z0))
P(mark(z0)) → c16(P(z0))
P(active(z0)) → c17(P(z0))
S tuples:
ACTIVE(f(0)) → c(MARK(cons(0, f(s(0)))), CONS(0, f(s(0))), F(s(0)), S(0))
ACTIVE(f(s(0))) → c1(MARK(f(p(s(0)))), F(p(s(0))), P(s(0)), S(0))
ACTIVE(p(s(z0))) → c2(MARK(z0))
MARK(f(z0)) → c3(ACTIVE(f(mark(z0))), F(mark(z0)), MARK(z0))
MARK(0) → c4(ACTIVE(0))
MARK(cons(z0, z1)) → c5(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0))
MARK(s(z0)) → c6(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0))
MARK(p(z0)) → c7(ACTIVE(p(mark(z0))), P(mark(z0)), MARK(z0))
F(mark(z0)) → c8(F(z0))
F(active(z0)) → c9(F(z0))
CONS(mark(z0), z1) → c10(CONS(z0, z1))
CONS(z0, mark(z1)) → c11(CONS(z0, z1))
CONS(active(z0), z1) → c12(CONS(z0, z1))
CONS(z0, active(z1)) → c13(CONS(z0, z1))
S(mark(z0)) → c14(S(z0))
S(active(z0)) → c15(S(z0))
P(mark(z0)) → c16(P(z0))
P(active(z0)) → c17(P(z0))
K tuples:none
Defined Rule Symbols:
active, mark, f, cons, s, p
Defined Pair Symbols:
ACTIVE, MARK, F, CONS, S, P
Compound Symbols:
c, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, c13, c14, c15, c16, c17
(3) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID) transformation)
Removed 1 trailing nodes:
MARK(0) → c4(ACTIVE(0))
(4) Obligation:
Complexity Dependency Tuples Problem
Rules:
active(f(0)) → mark(cons(0, f(s(0))))
active(f(s(0))) → mark(f(p(s(0))))
active(p(s(z0))) → mark(z0)
mark(f(z0)) → active(f(mark(z0)))
mark(0) → active(0)
mark(cons(z0, z1)) → active(cons(mark(z0), z1))
mark(s(z0)) → active(s(mark(z0)))
mark(p(z0)) → active(p(mark(z0)))
f(mark(z0)) → f(z0)
f(active(z0)) → f(z0)
cons(mark(z0), z1) → cons(z0, z1)
cons(z0, mark(z1)) → cons(z0, z1)
cons(active(z0), z1) → cons(z0, z1)
cons(z0, active(z1)) → cons(z0, z1)
s(mark(z0)) → s(z0)
s(active(z0)) → s(z0)
p(mark(z0)) → p(z0)
p(active(z0)) → p(z0)
Tuples:
ACTIVE(f(0)) → c(MARK(cons(0, f(s(0)))), CONS(0, f(s(0))), F(s(0)), S(0))
ACTIVE(f(s(0))) → c1(MARK(f(p(s(0)))), F(p(s(0))), P(s(0)), S(0))
ACTIVE(p(s(z0))) → c2(MARK(z0))
MARK(f(z0)) → c3(ACTIVE(f(mark(z0))), F(mark(z0)), MARK(z0))
MARK(cons(z0, z1)) → c5(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0))
MARK(s(z0)) → c6(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0))
MARK(p(z0)) → c7(ACTIVE(p(mark(z0))), P(mark(z0)), MARK(z0))
F(mark(z0)) → c8(F(z0))
F(active(z0)) → c9(F(z0))
CONS(mark(z0), z1) → c10(CONS(z0, z1))
CONS(z0, mark(z1)) → c11(CONS(z0, z1))
CONS(active(z0), z1) → c12(CONS(z0, z1))
CONS(z0, active(z1)) → c13(CONS(z0, z1))
S(mark(z0)) → c14(S(z0))
S(active(z0)) → c15(S(z0))
P(mark(z0)) → c16(P(z0))
P(active(z0)) → c17(P(z0))
S tuples:
ACTIVE(f(0)) → c(MARK(cons(0, f(s(0)))), CONS(0, f(s(0))), F(s(0)), S(0))
ACTIVE(f(s(0))) → c1(MARK(f(p(s(0)))), F(p(s(0))), P(s(0)), S(0))
ACTIVE(p(s(z0))) → c2(MARK(z0))
MARK(f(z0)) → c3(ACTIVE(f(mark(z0))), F(mark(z0)), MARK(z0))
MARK(cons(z0, z1)) → c5(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0))
MARK(s(z0)) → c6(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0))
MARK(p(z0)) → c7(ACTIVE(p(mark(z0))), P(mark(z0)), MARK(z0))
F(mark(z0)) → c8(F(z0))
F(active(z0)) → c9(F(z0))
CONS(mark(z0), z1) → c10(CONS(z0, z1))
CONS(z0, mark(z1)) → c11(CONS(z0, z1))
CONS(active(z0), z1) → c12(CONS(z0, z1))
CONS(z0, active(z1)) → c13(CONS(z0, z1))
S(mark(z0)) → c14(S(z0))
S(active(z0)) → c15(S(z0))
P(mark(z0)) → c16(P(z0))
P(active(z0)) → c17(P(z0))
K tuples:none
Defined Rule Symbols:
active, mark, f, cons, s, p
Defined Pair Symbols:
ACTIVE, MARK, F, CONS, S, P
Compound Symbols:
c, c1, c2, c3, c5, c6, c7, c8, c9, c10, c11, c12, c13, c14, c15, c16, c17
(5) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)
Use narrowing to replace
ACTIVE(
f(
0)) →
c(
MARK(
cons(
0,
f(
s(
0)))),
CONS(
0,
f(
s(
0))),
F(
s(
0)),
S(
0)) by
ACTIVE(f(0)) → c(MARK(cons(0, f(s(0)))))
(6) Obligation:
Complexity Dependency Tuples Problem
Rules:
active(f(0)) → mark(cons(0, f(s(0))))
active(f(s(0))) → mark(f(p(s(0))))
active(p(s(z0))) → mark(z0)
mark(f(z0)) → active(f(mark(z0)))
mark(0) → active(0)
mark(cons(z0, z1)) → active(cons(mark(z0), z1))
mark(s(z0)) → active(s(mark(z0)))
mark(p(z0)) → active(p(mark(z0)))
f(mark(z0)) → f(z0)
f(active(z0)) → f(z0)
cons(mark(z0), z1) → cons(z0, z1)
cons(z0, mark(z1)) → cons(z0, z1)
cons(active(z0), z1) → cons(z0, z1)
cons(z0, active(z1)) → cons(z0, z1)
s(mark(z0)) → s(z0)
s(active(z0)) → s(z0)
p(mark(z0)) → p(z0)
p(active(z0)) → p(z0)
Tuples:
ACTIVE(f(s(0))) → c1(MARK(f(p(s(0)))), F(p(s(0))), P(s(0)), S(0))
ACTIVE(p(s(z0))) → c2(MARK(z0))
MARK(f(z0)) → c3(ACTIVE(f(mark(z0))), F(mark(z0)), MARK(z0))
MARK(cons(z0, z1)) → c5(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0))
MARK(s(z0)) → c6(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0))
MARK(p(z0)) → c7(ACTIVE(p(mark(z0))), P(mark(z0)), MARK(z0))
F(mark(z0)) → c8(F(z0))
F(active(z0)) → c9(F(z0))
CONS(mark(z0), z1) → c10(CONS(z0, z1))
CONS(z0, mark(z1)) → c11(CONS(z0, z1))
CONS(active(z0), z1) → c12(CONS(z0, z1))
CONS(z0, active(z1)) → c13(CONS(z0, z1))
S(mark(z0)) → c14(S(z0))
S(active(z0)) → c15(S(z0))
P(mark(z0)) → c16(P(z0))
P(active(z0)) → c17(P(z0))
ACTIVE(f(0)) → c(MARK(cons(0, f(s(0)))))
S tuples:
ACTIVE(f(s(0))) → c1(MARK(f(p(s(0)))), F(p(s(0))), P(s(0)), S(0))
ACTIVE(p(s(z0))) → c2(MARK(z0))
MARK(f(z0)) → c3(ACTIVE(f(mark(z0))), F(mark(z0)), MARK(z0))
MARK(cons(z0, z1)) → c5(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0))
MARK(s(z0)) → c6(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0))
MARK(p(z0)) → c7(ACTIVE(p(mark(z0))), P(mark(z0)), MARK(z0))
F(mark(z0)) → c8(F(z0))
F(active(z0)) → c9(F(z0))
CONS(mark(z0), z1) → c10(CONS(z0, z1))
CONS(z0, mark(z1)) → c11(CONS(z0, z1))
CONS(active(z0), z1) → c12(CONS(z0, z1))
CONS(z0, active(z1)) → c13(CONS(z0, z1))
S(mark(z0)) → c14(S(z0))
S(active(z0)) → c15(S(z0))
P(mark(z0)) → c16(P(z0))
P(active(z0)) → c17(P(z0))
ACTIVE(f(0)) → c(MARK(cons(0, f(s(0)))))
K tuples:none
Defined Rule Symbols:
active, mark, f, cons, s, p
Defined Pair Symbols:
ACTIVE, MARK, F, CONS, S, P
Compound Symbols:
c1, c2, c3, c5, c6, c7, c8, c9, c10, c11, c12, c13, c14, c15, c16, c17, c
(7) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)
Use narrowing to replace
ACTIVE(
f(
s(
0))) →
c1(
MARK(
f(
p(
s(
0)))),
F(
p(
s(
0))),
P(
s(
0)),
S(
0)) by
ACTIVE(f(s(0))) → c1(MARK(f(p(s(0)))))
(8) Obligation:
Complexity Dependency Tuples Problem
Rules:
active(f(0)) → mark(cons(0, f(s(0))))
active(f(s(0))) → mark(f(p(s(0))))
active(p(s(z0))) → mark(z0)
mark(f(z0)) → active(f(mark(z0)))
mark(0) → active(0)
mark(cons(z0, z1)) → active(cons(mark(z0), z1))
mark(s(z0)) → active(s(mark(z0)))
mark(p(z0)) → active(p(mark(z0)))
f(mark(z0)) → f(z0)
f(active(z0)) → f(z0)
cons(mark(z0), z1) → cons(z0, z1)
cons(z0, mark(z1)) → cons(z0, z1)
cons(active(z0), z1) → cons(z0, z1)
cons(z0, active(z1)) → cons(z0, z1)
s(mark(z0)) → s(z0)
s(active(z0)) → s(z0)
p(mark(z0)) → p(z0)
p(active(z0)) → p(z0)
Tuples:
ACTIVE(p(s(z0))) → c2(MARK(z0))
MARK(f(z0)) → c3(ACTIVE(f(mark(z0))), F(mark(z0)), MARK(z0))
MARK(cons(z0, z1)) → c5(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0))
MARK(s(z0)) → c6(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0))
MARK(p(z0)) → c7(ACTIVE(p(mark(z0))), P(mark(z0)), MARK(z0))
F(mark(z0)) → c8(F(z0))
F(active(z0)) → c9(F(z0))
CONS(mark(z0), z1) → c10(CONS(z0, z1))
CONS(z0, mark(z1)) → c11(CONS(z0, z1))
CONS(active(z0), z1) → c12(CONS(z0, z1))
CONS(z0, active(z1)) → c13(CONS(z0, z1))
S(mark(z0)) → c14(S(z0))
S(active(z0)) → c15(S(z0))
P(mark(z0)) → c16(P(z0))
P(active(z0)) → c17(P(z0))
ACTIVE(f(0)) → c(MARK(cons(0, f(s(0)))))
ACTIVE(f(s(0))) → c1(MARK(f(p(s(0)))))
S tuples:
ACTIVE(p(s(z0))) → c2(MARK(z0))
MARK(f(z0)) → c3(ACTIVE(f(mark(z0))), F(mark(z0)), MARK(z0))
MARK(cons(z0, z1)) → c5(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0))
MARK(s(z0)) → c6(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0))
MARK(p(z0)) → c7(ACTIVE(p(mark(z0))), P(mark(z0)), MARK(z0))
F(mark(z0)) → c8(F(z0))
F(active(z0)) → c9(F(z0))
CONS(mark(z0), z1) → c10(CONS(z0, z1))
CONS(z0, mark(z1)) → c11(CONS(z0, z1))
CONS(active(z0), z1) → c12(CONS(z0, z1))
CONS(z0, active(z1)) → c13(CONS(z0, z1))
S(mark(z0)) → c14(S(z0))
S(active(z0)) → c15(S(z0))
P(mark(z0)) → c16(P(z0))
P(active(z0)) → c17(P(z0))
ACTIVE(f(0)) → c(MARK(cons(0, f(s(0)))))
ACTIVE(f(s(0))) → c1(MARK(f(p(s(0)))))
K tuples:none
Defined Rule Symbols:
active, mark, f, cons, s, p
Defined Pair Symbols:
ACTIVE, MARK, F, CONS, S, P
Compound Symbols:
c2, c3, c5, c6, c7, c8, c9, c10, c11, c12, c13, c14, c15, c16, c17, c, c1
(9) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)
Use narrowing to replace
MARK(
f(
z0)) →
c3(
ACTIVE(
f(
mark(
z0))),
F(
mark(
z0)),
MARK(
z0)) by
MARK(f(z0)) → c3(ACTIVE(f(z0)), F(mark(z0)), MARK(z0))
MARK(f(f(z0))) → c3(ACTIVE(f(active(f(mark(z0))))), F(mark(f(z0))), MARK(f(z0)))
MARK(f(0)) → c3(ACTIVE(f(active(0))), F(mark(0)), MARK(0))
MARK(f(cons(z0, z1))) → c3(ACTIVE(f(active(cons(mark(z0), z1)))), F(mark(cons(z0, z1))), MARK(cons(z0, z1)))
MARK(f(s(z0))) → c3(ACTIVE(f(active(s(mark(z0))))), F(mark(s(z0))), MARK(s(z0)))
MARK(f(p(z0))) → c3(ACTIVE(f(active(p(mark(z0))))), F(mark(p(z0))), MARK(p(z0)))
MARK(f(x0)) → c3
(10) Obligation:
Complexity Dependency Tuples Problem
Rules:
active(f(0)) → mark(cons(0, f(s(0))))
active(f(s(0))) → mark(f(p(s(0))))
active(p(s(z0))) → mark(z0)
mark(f(z0)) → active(f(mark(z0)))
mark(0) → active(0)
mark(cons(z0, z1)) → active(cons(mark(z0), z1))
mark(s(z0)) → active(s(mark(z0)))
mark(p(z0)) → active(p(mark(z0)))
f(mark(z0)) → f(z0)
f(active(z0)) → f(z0)
cons(mark(z0), z1) → cons(z0, z1)
cons(z0, mark(z1)) → cons(z0, z1)
cons(active(z0), z1) → cons(z0, z1)
cons(z0, active(z1)) → cons(z0, z1)
s(mark(z0)) → s(z0)
s(active(z0)) → s(z0)
p(mark(z0)) → p(z0)
p(active(z0)) → p(z0)
Tuples:
ACTIVE(p(s(z0))) → c2(MARK(z0))
MARK(cons(z0, z1)) → c5(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0))
MARK(s(z0)) → c6(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0))
MARK(p(z0)) → c7(ACTIVE(p(mark(z0))), P(mark(z0)), MARK(z0))
F(mark(z0)) → c8(F(z0))
F(active(z0)) → c9(F(z0))
CONS(mark(z0), z1) → c10(CONS(z0, z1))
CONS(z0, mark(z1)) → c11(CONS(z0, z1))
CONS(active(z0), z1) → c12(CONS(z0, z1))
CONS(z0, active(z1)) → c13(CONS(z0, z1))
S(mark(z0)) → c14(S(z0))
S(active(z0)) → c15(S(z0))
P(mark(z0)) → c16(P(z0))
P(active(z0)) → c17(P(z0))
ACTIVE(f(0)) → c(MARK(cons(0, f(s(0)))))
ACTIVE(f(s(0))) → c1(MARK(f(p(s(0)))))
MARK(f(z0)) → c3(ACTIVE(f(z0)), F(mark(z0)), MARK(z0))
MARK(f(f(z0))) → c3(ACTIVE(f(active(f(mark(z0))))), F(mark(f(z0))), MARK(f(z0)))
MARK(f(0)) → c3(ACTIVE(f(active(0))), F(mark(0)), MARK(0))
MARK(f(cons(z0, z1))) → c3(ACTIVE(f(active(cons(mark(z0), z1)))), F(mark(cons(z0, z1))), MARK(cons(z0, z1)))
MARK(f(s(z0))) → c3(ACTIVE(f(active(s(mark(z0))))), F(mark(s(z0))), MARK(s(z0)))
MARK(f(p(z0))) → c3(ACTIVE(f(active(p(mark(z0))))), F(mark(p(z0))), MARK(p(z0)))
MARK(f(x0)) → c3
S tuples:
ACTIVE(p(s(z0))) → c2(MARK(z0))
MARK(cons(z0, z1)) → c5(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0))
MARK(s(z0)) → c6(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0))
MARK(p(z0)) → c7(ACTIVE(p(mark(z0))), P(mark(z0)), MARK(z0))
F(mark(z0)) → c8(F(z0))
F(active(z0)) → c9(F(z0))
CONS(mark(z0), z1) → c10(CONS(z0, z1))
CONS(z0, mark(z1)) → c11(CONS(z0, z1))
CONS(active(z0), z1) → c12(CONS(z0, z1))
CONS(z0, active(z1)) → c13(CONS(z0, z1))
S(mark(z0)) → c14(S(z0))
S(active(z0)) → c15(S(z0))
P(mark(z0)) → c16(P(z0))
P(active(z0)) → c17(P(z0))
ACTIVE(f(0)) → c(MARK(cons(0, f(s(0)))))
ACTIVE(f(s(0))) → c1(MARK(f(p(s(0)))))
MARK(f(z0)) → c3(ACTIVE(f(z0)), F(mark(z0)), MARK(z0))
MARK(f(f(z0))) → c3(ACTIVE(f(active(f(mark(z0))))), F(mark(f(z0))), MARK(f(z0)))
MARK(f(0)) → c3(ACTIVE(f(active(0))), F(mark(0)), MARK(0))
MARK(f(cons(z0, z1))) → c3(ACTIVE(f(active(cons(mark(z0), z1)))), F(mark(cons(z0, z1))), MARK(cons(z0, z1)))
MARK(f(s(z0))) → c3(ACTIVE(f(active(s(mark(z0))))), F(mark(s(z0))), MARK(s(z0)))
MARK(f(p(z0))) → c3(ACTIVE(f(active(p(mark(z0))))), F(mark(p(z0))), MARK(p(z0)))
MARK(f(x0)) → c3
K tuples:none
Defined Rule Symbols:
active, mark, f, cons, s, p
Defined Pair Symbols:
ACTIVE, MARK, F, CONS, S, P
Compound Symbols:
c2, c5, c6, c7, c8, c9, c10, c11, c12, c13, c14, c15, c16, c17, c, c1, c3, c3
(11) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID) transformation)
Removed 1 trailing nodes:
MARK(f(x0)) → c3
(12) Obligation:
Complexity Dependency Tuples Problem
Rules:
active(f(0)) → mark(cons(0, f(s(0))))
active(f(s(0))) → mark(f(p(s(0))))
active(p(s(z0))) → mark(z0)
mark(f(z0)) → active(f(mark(z0)))
mark(0) → active(0)
mark(cons(z0, z1)) → active(cons(mark(z0), z1))
mark(s(z0)) → active(s(mark(z0)))
mark(p(z0)) → active(p(mark(z0)))
f(mark(z0)) → f(z0)
f(active(z0)) → f(z0)
cons(mark(z0), z1) → cons(z0, z1)
cons(z0, mark(z1)) → cons(z0, z1)
cons(active(z0), z1) → cons(z0, z1)
cons(z0, active(z1)) → cons(z0, z1)
s(mark(z0)) → s(z0)
s(active(z0)) → s(z0)
p(mark(z0)) → p(z0)
p(active(z0)) → p(z0)
Tuples:
ACTIVE(p(s(z0))) → c2(MARK(z0))
MARK(cons(z0, z1)) → c5(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0))
MARK(s(z0)) → c6(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0))
MARK(p(z0)) → c7(ACTIVE(p(mark(z0))), P(mark(z0)), MARK(z0))
F(mark(z0)) → c8(F(z0))
F(active(z0)) → c9(F(z0))
CONS(mark(z0), z1) → c10(CONS(z0, z1))
CONS(z0, mark(z1)) → c11(CONS(z0, z1))
CONS(active(z0), z1) → c12(CONS(z0, z1))
CONS(z0, active(z1)) → c13(CONS(z0, z1))
S(mark(z0)) → c14(S(z0))
S(active(z0)) → c15(S(z0))
P(mark(z0)) → c16(P(z0))
P(active(z0)) → c17(P(z0))
ACTIVE(f(0)) → c(MARK(cons(0, f(s(0)))))
ACTIVE(f(s(0))) → c1(MARK(f(p(s(0)))))
MARK(f(z0)) → c3(ACTIVE(f(z0)), F(mark(z0)), MARK(z0))
MARK(f(f(z0))) → c3(ACTIVE(f(active(f(mark(z0))))), F(mark(f(z0))), MARK(f(z0)))
MARK(f(0)) → c3(ACTIVE(f(active(0))), F(mark(0)), MARK(0))
MARK(f(cons(z0, z1))) → c3(ACTIVE(f(active(cons(mark(z0), z1)))), F(mark(cons(z0, z1))), MARK(cons(z0, z1)))
MARK(f(s(z0))) → c3(ACTIVE(f(active(s(mark(z0))))), F(mark(s(z0))), MARK(s(z0)))
MARK(f(p(z0))) → c3(ACTIVE(f(active(p(mark(z0))))), F(mark(p(z0))), MARK(p(z0)))
S tuples:
ACTIVE(p(s(z0))) → c2(MARK(z0))
MARK(cons(z0, z1)) → c5(ACTIVE(cons(mark(z0), z1)), CONS(mark(z0), z1), MARK(z0))
MARK(s(z0)) → c6(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0))
MARK(p(z0)) → c7(ACTIVE(p(mark(z0))), P(mark(z0)), MARK(z0))
F(mark(z0)) → c8(F(z0))
F(active(z0)) → c9(F(z0))
CONS(mark(z0), z1) → c10(CONS(z0, z1))
CONS(z0, mark(z1)) → c11(CONS(z0, z1))
CONS(active(z0), z1) → c12(CONS(z0, z1))
CONS(z0, active(z1)) → c13(CONS(z0, z1))
S(mark(z0)) → c14(S(z0))
S(active(z0)) → c15(S(z0))
P(mark(z0)) → c16(P(z0))
P(active(z0)) → c17(P(z0))
ACTIVE(f(0)) → c(MARK(cons(0, f(s(0)))))
ACTIVE(f(s(0))) → c1(MARK(f(p(s(0)))))
MARK(f(z0)) → c3(ACTIVE(f(z0)), F(mark(z0)), MARK(z0))
MARK(f(f(z0))) → c3(ACTIVE(f(active(f(mark(z0))))), F(mark(f(z0))), MARK(f(z0)))
MARK(f(0)) → c3(ACTIVE(f(active(0))), F(mark(0)), MARK(0))
MARK(f(cons(z0, z1))) → c3(ACTIVE(f(active(cons(mark(z0), z1)))), F(mark(cons(z0, z1))), MARK(cons(z0, z1)))
MARK(f(s(z0))) → c3(ACTIVE(f(active(s(mark(z0))))), F(mark(s(z0))), MARK(s(z0)))
MARK(f(p(z0))) → c3(ACTIVE(f(active(p(mark(z0))))), F(mark(p(z0))), MARK(p(z0)))
K tuples:none
Defined Rule Symbols:
active, mark, f, cons, s, p
Defined Pair Symbols:
ACTIVE, MARK, F, CONS, S, P
Compound Symbols:
c2, c5, c6, c7, c8, c9, c10, c11, c12, c13, c14, c15, c16, c17, c, c1, c3
(13) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)
Use narrowing to replace
MARK(
cons(
z0,
z1)) →
c5(
ACTIVE(
cons(
mark(
z0),
z1)),
CONS(
mark(
z0),
z1),
MARK(
z0)) by
MARK(cons(z0, z1)) → c5(ACTIVE(cons(z0, z1)), CONS(mark(z0), z1), MARK(z0))
MARK(cons(f(z0), x1)) → c5(ACTIVE(cons(active(f(mark(z0))), x1)), CONS(mark(f(z0)), x1), MARK(f(z0)))
MARK(cons(0, x1)) → c5(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0))
MARK(cons(cons(z0, z1), x1)) → c5(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1)))
MARK(cons(s(z0), x1)) → c5(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0)))
MARK(cons(p(z0), x1)) → c5(ACTIVE(cons(active(p(mark(z0))), x1)), CONS(mark(p(z0)), x1), MARK(p(z0)))
MARK(cons(x0, x1)) → c5(CONS(mark(x0), x1))
(14) Obligation:
Complexity Dependency Tuples Problem
Rules:
active(f(0)) → mark(cons(0, f(s(0))))
active(f(s(0))) → mark(f(p(s(0))))
active(p(s(z0))) → mark(z0)
mark(f(z0)) → active(f(mark(z0)))
mark(0) → active(0)
mark(cons(z0, z1)) → active(cons(mark(z0), z1))
mark(s(z0)) → active(s(mark(z0)))
mark(p(z0)) → active(p(mark(z0)))
f(mark(z0)) → f(z0)
f(active(z0)) → f(z0)
cons(mark(z0), z1) → cons(z0, z1)
cons(z0, mark(z1)) → cons(z0, z1)
cons(active(z0), z1) → cons(z0, z1)
cons(z0, active(z1)) → cons(z0, z1)
s(mark(z0)) → s(z0)
s(active(z0)) → s(z0)
p(mark(z0)) → p(z0)
p(active(z0)) → p(z0)
Tuples:
ACTIVE(p(s(z0))) → c2(MARK(z0))
MARK(s(z0)) → c6(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0))
MARK(p(z0)) → c7(ACTIVE(p(mark(z0))), P(mark(z0)), MARK(z0))
F(mark(z0)) → c8(F(z0))
F(active(z0)) → c9(F(z0))
CONS(mark(z0), z1) → c10(CONS(z0, z1))
CONS(z0, mark(z1)) → c11(CONS(z0, z1))
CONS(active(z0), z1) → c12(CONS(z0, z1))
CONS(z0, active(z1)) → c13(CONS(z0, z1))
S(mark(z0)) → c14(S(z0))
S(active(z0)) → c15(S(z0))
P(mark(z0)) → c16(P(z0))
P(active(z0)) → c17(P(z0))
ACTIVE(f(0)) → c(MARK(cons(0, f(s(0)))))
ACTIVE(f(s(0))) → c1(MARK(f(p(s(0)))))
MARK(f(z0)) → c3(ACTIVE(f(z0)), F(mark(z0)), MARK(z0))
MARK(f(f(z0))) → c3(ACTIVE(f(active(f(mark(z0))))), F(mark(f(z0))), MARK(f(z0)))
MARK(f(0)) → c3(ACTIVE(f(active(0))), F(mark(0)), MARK(0))
MARK(f(cons(z0, z1))) → c3(ACTIVE(f(active(cons(mark(z0), z1)))), F(mark(cons(z0, z1))), MARK(cons(z0, z1)))
MARK(f(s(z0))) → c3(ACTIVE(f(active(s(mark(z0))))), F(mark(s(z0))), MARK(s(z0)))
MARK(f(p(z0))) → c3(ACTIVE(f(active(p(mark(z0))))), F(mark(p(z0))), MARK(p(z0)))
MARK(cons(z0, z1)) → c5(ACTIVE(cons(z0, z1)), CONS(mark(z0), z1), MARK(z0))
MARK(cons(f(z0), x1)) → c5(ACTIVE(cons(active(f(mark(z0))), x1)), CONS(mark(f(z0)), x1), MARK(f(z0)))
MARK(cons(0, x1)) → c5(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0))
MARK(cons(cons(z0, z1), x1)) → c5(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1)))
MARK(cons(s(z0), x1)) → c5(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0)))
MARK(cons(p(z0), x1)) → c5(ACTIVE(cons(active(p(mark(z0))), x1)), CONS(mark(p(z0)), x1), MARK(p(z0)))
MARK(cons(x0, x1)) → c5(CONS(mark(x0), x1))
S tuples:
ACTIVE(p(s(z0))) → c2(MARK(z0))
MARK(s(z0)) → c6(ACTIVE(s(mark(z0))), S(mark(z0)), MARK(z0))
MARK(p(z0)) → c7(ACTIVE(p(mark(z0))), P(mark(z0)), MARK(z0))
F(mark(z0)) → c8(F(z0))
F(active(z0)) → c9(F(z0))
CONS(mark(z0), z1) → c10(CONS(z0, z1))
CONS(z0, mark(z1)) → c11(CONS(z0, z1))
CONS(active(z0), z1) → c12(CONS(z0, z1))
CONS(z0, active(z1)) → c13(CONS(z0, z1))
S(mark(z0)) → c14(S(z0))
S(active(z0)) → c15(S(z0))
P(mark(z0)) → c16(P(z0))
P(active(z0)) → c17(P(z0))
ACTIVE(f(0)) → c(MARK(cons(0, f(s(0)))))
ACTIVE(f(s(0))) → c1(MARK(f(p(s(0)))))
MARK(f(z0)) → c3(ACTIVE(f(z0)), F(mark(z0)), MARK(z0))
MARK(f(f(z0))) → c3(ACTIVE(f(active(f(mark(z0))))), F(mark(f(z0))), MARK(f(z0)))
MARK(f(0)) → c3(ACTIVE(f(active(0))), F(mark(0)), MARK(0))
MARK(f(cons(z0, z1))) → c3(ACTIVE(f(active(cons(mark(z0), z1)))), F(mark(cons(z0, z1))), MARK(cons(z0, z1)))
MARK(f(s(z0))) → c3(ACTIVE(f(active(s(mark(z0))))), F(mark(s(z0))), MARK(s(z0)))
MARK(f(p(z0))) → c3(ACTIVE(f(active(p(mark(z0))))), F(mark(p(z0))), MARK(p(z0)))
MARK(cons(z0, z1)) → c5(ACTIVE(cons(z0, z1)), CONS(mark(z0), z1), MARK(z0))
MARK(cons(f(z0), x1)) → c5(ACTIVE(cons(active(f(mark(z0))), x1)), CONS(mark(f(z0)), x1), MARK(f(z0)))
MARK(cons(0, x1)) → c5(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0))
MARK(cons(cons(z0, z1), x1)) → c5(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1)))
MARK(cons(s(z0), x1)) → c5(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0)))
MARK(cons(p(z0), x1)) → c5(ACTIVE(cons(active(p(mark(z0))), x1)), CONS(mark(p(z0)), x1), MARK(p(z0)))
MARK(cons(x0, x1)) → c5(CONS(mark(x0), x1))
K tuples:none
Defined Rule Symbols:
active, mark, f, cons, s, p
Defined Pair Symbols:
ACTIVE, MARK, F, CONS, S, P
Compound Symbols:
c2, c6, c7, c8, c9, c10, c11, c12, c13, c14, c15, c16, c17, c, c1, c3, c5, c5
(15) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)
Use narrowing to replace
MARK(
s(
z0)) →
c6(
ACTIVE(
s(
mark(
z0))),
S(
mark(
z0)),
MARK(
z0)) by
MARK(s(z0)) → c6(ACTIVE(s(z0)), S(mark(z0)), MARK(z0))
MARK(s(f(z0))) → c6(ACTIVE(s(active(f(mark(z0))))), S(mark(f(z0))), MARK(f(z0)))
MARK(s(0)) → c6(ACTIVE(s(active(0))), S(mark(0)), MARK(0))
MARK(s(cons(z0, z1))) → c6(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1)))
MARK(s(s(z0))) → c6(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0)))
MARK(s(p(z0))) → c6(ACTIVE(s(active(p(mark(z0))))), S(mark(p(z0))), MARK(p(z0)))
MARK(s(x0)) → c6
(16) Obligation:
Complexity Dependency Tuples Problem
Rules:
active(f(0)) → mark(cons(0, f(s(0))))
active(f(s(0))) → mark(f(p(s(0))))
active(p(s(z0))) → mark(z0)
mark(f(z0)) → active(f(mark(z0)))
mark(0) → active(0)
mark(cons(z0, z1)) → active(cons(mark(z0), z1))
mark(s(z0)) → active(s(mark(z0)))
mark(p(z0)) → active(p(mark(z0)))
f(mark(z0)) → f(z0)
f(active(z0)) → f(z0)
cons(mark(z0), z1) → cons(z0, z1)
cons(z0, mark(z1)) → cons(z0, z1)
cons(active(z0), z1) → cons(z0, z1)
cons(z0, active(z1)) → cons(z0, z1)
s(mark(z0)) → s(z0)
s(active(z0)) → s(z0)
p(mark(z0)) → p(z0)
p(active(z0)) → p(z0)
Tuples:
ACTIVE(p(s(z0))) → c2(MARK(z0))
MARK(p(z0)) → c7(ACTIVE(p(mark(z0))), P(mark(z0)), MARK(z0))
F(mark(z0)) → c8(F(z0))
F(active(z0)) → c9(F(z0))
CONS(mark(z0), z1) → c10(CONS(z0, z1))
CONS(z0, mark(z1)) → c11(CONS(z0, z1))
CONS(active(z0), z1) → c12(CONS(z0, z1))
CONS(z0, active(z1)) → c13(CONS(z0, z1))
S(mark(z0)) → c14(S(z0))
S(active(z0)) → c15(S(z0))
P(mark(z0)) → c16(P(z0))
P(active(z0)) → c17(P(z0))
ACTIVE(f(0)) → c(MARK(cons(0, f(s(0)))))
ACTIVE(f(s(0))) → c1(MARK(f(p(s(0)))))
MARK(f(z0)) → c3(ACTIVE(f(z0)), F(mark(z0)), MARK(z0))
MARK(f(f(z0))) → c3(ACTIVE(f(active(f(mark(z0))))), F(mark(f(z0))), MARK(f(z0)))
MARK(f(0)) → c3(ACTIVE(f(active(0))), F(mark(0)), MARK(0))
MARK(f(cons(z0, z1))) → c3(ACTIVE(f(active(cons(mark(z0), z1)))), F(mark(cons(z0, z1))), MARK(cons(z0, z1)))
MARK(f(s(z0))) → c3(ACTIVE(f(active(s(mark(z0))))), F(mark(s(z0))), MARK(s(z0)))
MARK(f(p(z0))) → c3(ACTIVE(f(active(p(mark(z0))))), F(mark(p(z0))), MARK(p(z0)))
MARK(cons(z0, z1)) → c5(ACTIVE(cons(z0, z1)), CONS(mark(z0), z1), MARK(z0))
MARK(cons(f(z0), x1)) → c5(ACTIVE(cons(active(f(mark(z0))), x1)), CONS(mark(f(z0)), x1), MARK(f(z0)))
MARK(cons(0, x1)) → c5(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0))
MARK(cons(cons(z0, z1), x1)) → c5(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1)))
MARK(cons(s(z0), x1)) → c5(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0)))
MARK(cons(p(z0), x1)) → c5(ACTIVE(cons(active(p(mark(z0))), x1)), CONS(mark(p(z0)), x1), MARK(p(z0)))
MARK(cons(x0, x1)) → c5(CONS(mark(x0), x1))
MARK(s(z0)) → c6(ACTIVE(s(z0)), S(mark(z0)), MARK(z0))
MARK(s(f(z0))) → c6(ACTIVE(s(active(f(mark(z0))))), S(mark(f(z0))), MARK(f(z0)))
MARK(s(0)) → c6(ACTIVE(s(active(0))), S(mark(0)), MARK(0))
MARK(s(cons(z0, z1))) → c6(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1)))
MARK(s(s(z0))) → c6(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0)))
MARK(s(p(z0))) → c6(ACTIVE(s(active(p(mark(z0))))), S(mark(p(z0))), MARK(p(z0)))
MARK(s(x0)) → c6
S tuples:
ACTIVE(p(s(z0))) → c2(MARK(z0))
MARK(p(z0)) → c7(ACTIVE(p(mark(z0))), P(mark(z0)), MARK(z0))
F(mark(z0)) → c8(F(z0))
F(active(z0)) → c9(F(z0))
CONS(mark(z0), z1) → c10(CONS(z0, z1))
CONS(z0, mark(z1)) → c11(CONS(z0, z1))
CONS(active(z0), z1) → c12(CONS(z0, z1))
CONS(z0, active(z1)) → c13(CONS(z0, z1))
S(mark(z0)) → c14(S(z0))
S(active(z0)) → c15(S(z0))
P(mark(z0)) → c16(P(z0))
P(active(z0)) → c17(P(z0))
ACTIVE(f(0)) → c(MARK(cons(0, f(s(0)))))
ACTIVE(f(s(0))) → c1(MARK(f(p(s(0)))))
MARK(f(z0)) → c3(ACTIVE(f(z0)), F(mark(z0)), MARK(z0))
MARK(f(f(z0))) → c3(ACTIVE(f(active(f(mark(z0))))), F(mark(f(z0))), MARK(f(z0)))
MARK(f(0)) → c3(ACTIVE(f(active(0))), F(mark(0)), MARK(0))
MARK(f(cons(z0, z1))) → c3(ACTIVE(f(active(cons(mark(z0), z1)))), F(mark(cons(z0, z1))), MARK(cons(z0, z1)))
MARK(f(s(z0))) → c3(ACTIVE(f(active(s(mark(z0))))), F(mark(s(z0))), MARK(s(z0)))
MARK(f(p(z0))) → c3(ACTIVE(f(active(p(mark(z0))))), F(mark(p(z0))), MARK(p(z0)))
MARK(cons(z0, z1)) → c5(ACTIVE(cons(z0, z1)), CONS(mark(z0), z1), MARK(z0))
MARK(cons(f(z0), x1)) → c5(ACTIVE(cons(active(f(mark(z0))), x1)), CONS(mark(f(z0)), x1), MARK(f(z0)))
MARK(cons(0, x1)) → c5(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0))
MARK(cons(cons(z0, z1), x1)) → c5(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1)))
MARK(cons(s(z0), x1)) → c5(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0)))
MARK(cons(p(z0), x1)) → c5(ACTIVE(cons(active(p(mark(z0))), x1)), CONS(mark(p(z0)), x1), MARK(p(z0)))
MARK(cons(x0, x1)) → c5(CONS(mark(x0), x1))
MARK(s(z0)) → c6(ACTIVE(s(z0)), S(mark(z0)), MARK(z0))
MARK(s(f(z0))) → c6(ACTIVE(s(active(f(mark(z0))))), S(mark(f(z0))), MARK(f(z0)))
MARK(s(0)) → c6(ACTIVE(s(active(0))), S(mark(0)), MARK(0))
MARK(s(cons(z0, z1))) → c6(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1)))
MARK(s(s(z0))) → c6(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0)))
MARK(s(p(z0))) → c6(ACTIVE(s(active(p(mark(z0))))), S(mark(p(z0))), MARK(p(z0)))
MARK(s(x0)) → c6
K tuples:none
Defined Rule Symbols:
active, mark, f, cons, s, p
Defined Pair Symbols:
ACTIVE, MARK, F, CONS, S, P
Compound Symbols:
c2, c7, c8, c9, c10, c11, c12, c13, c14, c15, c16, c17, c, c1, c3, c5, c5, c6, c6
(17) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID) transformation)
Removed 1 trailing nodes:
MARK(s(x0)) → c6
(18) Obligation:
Complexity Dependency Tuples Problem
Rules:
active(f(0)) → mark(cons(0, f(s(0))))
active(f(s(0))) → mark(f(p(s(0))))
active(p(s(z0))) → mark(z0)
mark(f(z0)) → active(f(mark(z0)))
mark(0) → active(0)
mark(cons(z0, z1)) → active(cons(mark(z0), z1))
mark(s(z0)) → active(s(mark(z0)))
mark(p(z0)) → active(p(mark(z0)))
f(mark(z0)) → f(z0)
f(active(z0)) → f(z0)
cons(mark(z0), z1) → cons(z0, z1)
cons(z0, mark(z1)) → cons(z0, z1)
cons(active(z0), z1) → cons(z0, z1)
cons(z0, active(z1)) → cons(z0, z1)
s(mark(z0)) → s(z0)
s(active(z0)) → s(z0)
p(mark(z0)) → p(z0)
p(active(z0)) → p(z0)
Tuples:
ACTIVE(p(s(z0))) → c2(MARK(z0))
MARK(p(z0)) → c7(ACTIVE(p(mark(z0))), P(mark(z0)), MARK(z0))
F(mark(z0)) → c8(F(z0))
F(active(z0)) → c9(F(z0))
CONS(mark(z0), z1) → c10(CONS(z0, z1))
CONS(z0, mark(z1)) → c11(CONS(z0, z1))
CONS(active(z0), z1) → c12(CONS(z0, z1))
CONS(z0, active(z1)) → c13(CONS(z0, z1))
S(mark(z0)) → c14(S(z0))
S(active(z0)) → c15(S(z0))
P(mark(z0)) → c16(P(z0))
P(active(z0)) → c17(P(z0))
ACTIVE(f(0)) → c(MARK(cons(0, f(s(0)))))
ACTIVE(f(s(0))) → c1(MARK(f(p(s(0)))))
MARK(f(z0)) → c3(ACTIVE(f(z0)), F(mark(z0)), MARK(z0))
MARK(f(f(z0))) → c3(ACTIVE(f(active(f(mark(z0))))), F(mark(f(z0))), MARK(f(z0)))
MARK(f(0)) → c3(ACTIVE(f(active(0))), F(mark(0)), MARK(0))
MARK(f(cons(z0, z1))) → c3(ACTIVE(f(active(cons(mark(z0), z1)))), F(mark(cons(z0, z1))), MARK(cons(z0, z1)))
MARK(f(s(z0))) → c3(ACTIVE(f(active(s(mark(z0))))), F(mark(s(z0))), MARK(s(z0)))
MARK(f(p(z0))) → c3(ACTIVE(f(active(p(mark(z0))))), F(mark(p(z0))), MARK(p(z0)))
MARK(cons(z0, z1)) → c5(ACTIVE(cons(z0, z1)), CONS(mark(z0), z1), MARK(z0))
MARK(cons(f(z0), x1)) → c5(ACTIVE(cons(active(f(mark(z0))), x1)), CONS(mark(f(z0)), x1), MARK(f(z0)))
MARK(cons(0, x1)) → c5(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0))
MARK(cons(cons(z0, z1), x1)) → c5(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1)))
MARK(cons(s(z0), x1)) → c5(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0)))
MARK(cons(p(z0), x1)) → c5(ACTIVE(cons(active(p(mark(z0))), x1)), CONS(mark(p(z0)), x1), MARK(p(z0)))
MARK(cons(x0, x1)) → c5(CONS(mark(x0), x1))
MARK(s(z0)) → c6(ACTIVE(s(z0)), S(mark(z0)), MARK(z0))
MARK(s(f(z0))) → c6(ACTIVE(s(active(f(mark(z0))))), S(mark(f(z0))), MARK(f(z0)))
MARK(s(0)) → c6(ACTIVE(s(active(0))), S(mark(0)), MARK(0))
MARK(s(cons(z0, z1))) → c6(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1)))
MARK(s(s(z0))) → c6(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0)))
MARK(s(p(z0))) → c6(ACTIVE(s(active(p(mark(z0))))), S(mark(p(z0))), MARK(p(z0)))
S tuples:
ACTIVE(p(s(z0))) → c2(MARK(z0))
MARK(p(z0)) → c7(ACTIVE(p(mark(z0))), P(mark(z0)), MARK(z0))
F(mark(z0)) → c8(F(z0))
F(active(z0)) → c9(F(z0))
CONS(mark(z0), z1) → c10(CONS(z0, z1))
CONS(z0, mark(z1)) → c11(CONS(z0, z1))
CONS(active(z0), z1) → c12(CONS(z0, z1))
CONS(z0, active(z1)) → c13(CONS(z0, z1))
S(mark(z0)) → c14(S(z0))
S(active(z0)) → c15(S(z0))
P(mark(z0)) → c16(P(z0))
P(active(z0)) → c17(P(z0))
ACTIVE(f(0)) → c(MARK(cons(0, f(s(0)))))
ACTIVE(f(s(0))) → c1(MARK(f(p(s(0)))))
MARK(f(z0)) → c3(ACTIVE(f(z0)), F(mark(z0)), MARK(z0))
MARK(f(f(z0))) → c3(ACTIVE(f(active(f(mark(z0))))), F(mark(f(z0))), MARK(f(z0)))
MARK(f(0)) → c3(ACTIVE(f(active(0))), F(mark(0)), MARK(0))
MARK(f(cons(z0, z1))) → c3(ACTIVE(f(active(cons(mark(z0), z1)))), F(mark(cons(z0, z1))), MARK(cons(z0, z1)))
MARK(f(s(z0))) → c3(ACTIVE(f(active(s(mark(z0))))), F(mark(s(z0))), MARK(s(z0)))
MARK(f(p(z0))) → c3(ACTIVE(f(active(p(mark(z0))))), F(mark(p(z0))), MARK(p(z0)))
MARK(cons(z0, z1)) → c5(ACTIVE(cons(z0, z1)), CONS(mark(z0), z1), MARK(z0))
MARK(cons(f(z0), x1)) → c5(ACTIVE(cons(active(f(mark(z0))), x1)), CONS(mark(f(z0)), x1), MARK(f(z0)))
MARK(cons(0, x1)) → c5(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0))
MARK(cons(cons(z0, z1), x1)) → c5(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1)))
MARK(cons(s(z0), x1)) → c5(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0)))
MARK(cons(p(z0), x1)) → c5(ACTIVE(cons(active(p(mark(z0))), x1)), CONS(mark(p(z0)), x1), MARK(p(z0)))
MARK(cons(x0, x1)) → c5(CONS(mark(x0), x1))
MARK(s(z0)) → c6(ACTIVE(s(z0)), S(mark(z0)), MARK(z0))
MARK(s(f(z0))) → c6(ACTIVE(s(active(f(mark(z0))))), S(mark(f(z0))), MARK(f(z0)))
MARK(s(0)) → c6(ACTIVE(s(active(0))), S(mark(0)), MARK(0))
MARK(s(cons(z0, z1))) → c6(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1)))
MARK(s(s(z0))) → c6(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0)))
MARK(s(p(z0))) → c6(ACTIVE(s(active(p(mark(z0))))), S(mark(p(z0))), MARK(p(z0)))
K tuples:none
Defined Rule Symbols:
active, mark, f, cons, s, p
Defined Pair Symbols:
ACTIVE, MARK, F, CONS, S, P
Compound Symbols:
c2, c7, c8, c9, c10, c11, c12, c13, c14, c15, c16, c17, c, c1, c3, c5, c5, c6
(19) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)
Use narrowing to replace
MARK(
p(
z0)) →
c7(
ACTIVE(
p(
mark(
z0))),
P(
mark(
z0)),
MARK(
z0)) by
MARK(p(z0)) → c7(ACTIVE(p(z0)), P(mark(z0)), MARK(z0))
MARK(p(f(z0))) → c7(ACTIVE(p(active(f(mark(z0))))), P(mark(f(z0))), MARK(f(z0)))
MARK(p(0)) → c7(ACTIVE(p(active(0))), P(mark(0)), MARK(0))
MARK(p(cons(z0, z1))) → c7(ACTIVE(p(active(cons(mark(z0), z1)))), P(mark(cons(z0, z1))), MARK(cons(z0, z1)))
MARK(p(s(z0))) → c7(ACTIVE(p(active(s(mark(z0))))), P(mark(s(z0))), MARK(s(z0)))
MARK(p(p(z0))) → c7(ACTIVE(p(active(p(mark(z0))))), P(mark(p(z0))), MARK(p(z0)))
MARK(p(x0)) → c7
(20) Obligation:
Complexity Dependency Tuples Problem
Rules:
active(f(0)) → mark(cons(0, f(s(0))))
active(f(s(0))) → mark(f(p(s(0))))
active(p(s(z0))) → mark(z0)
mark(f(z0)) → active(f(mark(z0)))
mark(0) → active(0)
mark(cons(z0, z1)) → active(cons(mark(z0), z1))
mark(s(z0)) → active(s(mark(z0)))
mark(p(z0)) → active(p(mark(z0)))
f(mark(z0)) → f(z0)
f(active(z0)) → f(z0)
cons(mark(z0), z1) → cons(z0, z1)
cons(z0, mark(z1)) → cons(z0, z1)
cons(active(z0), z1) → cons(z0, z1)
cons(z0, active(z1)) → cons(z0, z1)
s(mark(z0)) → s(z0)
s(active(z0)) → s(z0)
p(mark(z0)) → p(z0)
p(active(z0)) → p(z0)
Tuples:
ACTIVE(p(s(z0))) → c2(MARK(z0))
F(mark(z0)) → c8(F(z0))
F(active(z0)) → c9(F(z0))
CONS(mark(z0), z1) → c10(CONS(z0, z1))
CONS(z0, mark(z1)) → c11(CONS(z0, z1))
CONS(active(z0), z1) → c12(CONS(z0, z1))
CONS(z0, active(z1)) → c13(CONS(z0, z1))
S(mark(z0)) → c14(S(z0))
S(active(z0)) → c15(S(z0))
P(mark(z0)) → c16(P(z0))
P(active(z0)) → c17(P(z0))
ACTIVE(f(0)) → c(MARK(cons(0, f(s(0)))))
ACTIVE(f(s(0))) → c1(MARK(f(p(s(0)))))
MARK(f(z0)) → c3(ACTIVE(f(z0)), F(mark(z0)), MARK(z0))
MARK(f(f(z0))) → c3(ACTIVE(f(active(f(mark(z0))))), F(mark(f(z0))), MARK(f(z0)))
MARK(f(0)) → c3(ACTIVE(f(active(0))), F(mark(0)), MARK(0))
MARK(f(cons(z0, z1))) → c3(ACTIVE(f(active(cons(mark(z0), z1)))), F(mark(cons(z0, z1))), MARK(cons(z0, z1)))
MARK(f(s(z0))) → c3(ACTIVE(f(active(s(mark(z0))))), F(mark(s(z0))), MARK(s(z0)))
MARK(f(p(z0))) → c3(ACTIVE(f(active(p(mark(z0))))), F(mark(p(z0))), MARK(p(z0)))
MARK(cons(z0, z1)) → c5(ACTIVE(cons(z0, z1)), CONS(mark(z0), z1), MARK(z0))
MARK(cons(f(z0), x1)) → c5(ACTIVE(cons(active(f(mark(z0))), x1)), CONS(mark(f(z0)), x1), MARK(f(z0)))
MARK(cons(0, x1)) → c5(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0))
MARK(cons(cons(z0, z1), x1)) → c5(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1)))
MARK(cons(s(z0), x1)) → c5(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0)))
MARK(cons(p(z0), x1)) → c5(ACTIVE(cons(active(p(mark(z0))), x1)), CONS(mark(p(z0)), x1), MARK(p(z0)))
MARK(cons(x0, x1)) → c5(CONS(mark(x0), x1))
MARK(s(z0)) → c6(ACTIVE(s(z0)), S(mark(z0)), MARK(z0))
MARK(s(f(z0))) → c6(ACTIVE(s(active(f(mark(z0))))), S(mark(f(z0))), MARK(f(z0)))
MARK(s(0)) → c6(ACTIVE(s(active(0))), S(mark(0)), MARK(0))
MARK(s(cons(z0, z1))) → c6(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1)))
MARK(s(s(z0))) → c6(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0)))
MARK(s(p(z0))) → c6(ACTIVE(s(active(p(mark(z0))))), S(mark(p(z0))), MARK(p(z0)))
MARK(p(z0)) → c7(ACTIVE(p(z0)), P(mark(z0)), MARK(z0))
MARK(p(f(z0))) → c7(ACTIVE(p(active(f(mark(z0))))), P(mark(f(z0))), MARK(f(z0)))
MARK(p(0)) → c7(ACTIVE(p(active(0))), P(mark(0)), MARK(0))
MARK(p(cons(z0, z1))) → c7(ACTIVE(p(active(cons(mark(z0), z1)))), P(mark(cons(z0, z1))), MARK(cons(z0, z1)))
MARK(p(s(z0))) → c7(ACTIVE(p(active(s(mark(z0))))), P(mark(s(z0))), MARK(s(z0)))
MARK(p(p(z0))) → c7(ACTIVE(p(active(p(mark(z0))))), P(mark(p(z0))), MARK(p(z0)))
MARK(p(x0)) → c7
S tuples:
ACTIVE(p(s(z0))) → c2(MARK(z0))
F(mark(z0)) → c8(F(z0))
F(active(z0)) → c9(F(z0))
CONS(mark(z0), z1) → c10(CONS(z0, z1))
CONS(z0, mark(z1)) → c11(CONS(z0, z1))
CONS(active(z0), z1) → c12(CONS(z0, z1))
CONS(z0, active(z1)) → c13(CONS(z0, z1))
S(mark(z0)) → c14(S(z0))
S(active(z0)) → c15(S(z0))
P(mark(z0)) → c16(P(z0))
P(active(z0)) → c17(P(z0))
ACTIVE(f(0)) → c(MARK(cons(0, f(s(0)))))
ACTIVE(f(s(0))) → c1(MARK(f(p(s(0)))))
MARK(f(z0)) → c3(ACTIVE(f(z0)), F(mark(z0)), MARK(z0))
MARK(f(f(z0))) → c3(ACTIVE(f(active(f(mark(z0))))), F(mark(f(z0))), MARK(f(z0)))
MARK(f(0)) → c3(ACTIVE(f(active(0))), F(mark(0)), MARK(0))
MARK(f(cons(z0, z1))) → c3(ACTIVE(f(active(cons(mark(z0), z1)))), F(mark(cons(z0, z1))), MARK(cons(z0, z1)))
MARK(f(s(z0))) → c3(ACTIVE(f(active(s(mark(z0))))), F(mark(s(z0))), MARK(s(z0)))
MARK(f(p(z0))) → c3(ACTIVE(f(active(p(mark(z0))))), F(mark(p(z0))), MARK(p(z0)))
MARK(cons(z0, z1)) → c5(ACTIVE(cons(z0, z1)), CONS(mark(z0), z1), MARK(z0))
MARK(cons(f(z0), x1)) → c5(ACTIVE(cons(active(f(mark(z0))), x1)), CONS(mark(f(z0)), x1), MARK(f(z0)))
MARK(cons(0, x1)) → c5(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0))
MARK(cons(cons(z0, z1), x1)) → c5(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1)))
MARK(cons(s(z0), x1)) → c5(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0)))
MARK(cons(p(z0), x1)) → c5(ACTIVE(cons(active(p(mark(z0))), x1)), CONS(mark(p(z0)), x1), MARK(p(z0)))
MARK(cons(x0, x1)) → c5(CONS(mark(x0), x1))
MARK(s(z0)) → c6(ACTIVE(s(z0)), S(mark(z0)), MARK(z0))
MARK(s(f(z0))) → c6(ACTIVE(s(active(f(mark(z0))))), S(mark(f(z0))), MARK(f(z0)))
MARK(s(0)) → c6(ACTIVE(s(active(0))), S(mark(0)), MARK(0))
MARK(s(cons(z0, z1))) → c6(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1)))
MARK(s(s(z0))) → c6(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0)))
MARK(s(p(z0))) → c6(ACTIVE(s(active(p(mark(z0))))), S(mark(p(z0))), MARK(p(z0)))
MARK(p(z0)) → c7(ACTIVE(p(z0)), P(mark(z0)), MARK(z0))
MARK(p(f(z0))) → c7(ACTIVE(p(active(f(mark(z0))))), P(mark(f(z0))), MARK(f(z0)))
MARK(p(0)) → c7(ACTIVE(p(active(0))), P(mark(0)), MARK(0))
MARK(p(cons(z0, z1))) → c7(ACTIVE(p(active(cons(mark(z0), z1)))), P(mark(cons(z0, z1))), MARK(cons(z0, z1)))
MARK(p(s(z0))) → c7(ACTIVE(p(active(s(mark(z0))))), P(mark(s(z0))), MARK(s(z0)))
MARK(p(p(z0))) → c7(ACTIVE(p(active(p(mark(z0))))), P(mark(p(z0))), MARK(p(z0)))
MARK(p(x0)) → c7
K tuples:none
Defined Rule Symbols:
active, mark, f, cons, s, p
Defined Pair Symbols:
ACTIVE, F, CONS, S, P, MARK
Compound Symbols:
c2, c8, c9, c10, c11, c12, c13, c14, c15, c16, c17, c, c1, c3, c5, c5, c6, c7, c7
(21) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID) transformation)
Removed 1 trailing nodes:
MARK(p(x0)) → c7
(22) Obligation:
Complexity Dependency Tuples Problem
Rules:
active(f(0)) → mark(cons(0, f(s(0))))
active(f(s(0))) → mark(f(p(s(0))))
active(p(s(z0))) → mark(z0)
mark(f(z0)) → active(f(mark(z0)))
mark(0) → active(0)
mark(cons(z0, z1)) → active(cons(mark(z0), z1))
mark(s(z0)) → active(s(mark(z0)))
mark(p(z0)) → active(p(mark(z0)))
f(mark(z0)) → f(z0)
f(active(z0)) → f(z0)
cons(mark(z0), z1) → cons(z0, z1)
cons(z0, mark(z1)) → cons(z0, z1)
cons(active(z0), z1) → cons(z0, z1)
cons(z0, active(z1)) → cons(z0, z1)
s(mark(z0)) → s(z0)
s(active(z0)) → s(z0)
p(mark(z0)) → p(z0)
p(active(z0)) → p(z0)
Tuples:
ACTIVE(p(s(z0))) → c2(MARK(z0))
F(mark(z0)) → c8(F(z0))
F(active(z0)) → c9(F(z0))
CONS(mark(z0), z1) → c10(CONS(z0, z1))
CONS(z0, mark(z1)) → c11(CONS(z0, z1))
CONS(active(z0), z1) → c12(CONS(z0, z1))
CONS(z0, active(z1)) → c13(CONS(z0, z1))
S(mark(z0)) → c14(S(z0))
S(active(z0)) → c15(S(z0))
P(mark(z0)) → c16(P(z0))
P(active(z0)) → c17(P(z0))
ACTIVE(f(0)) → c(MARK(cons(0, f(s(0)))))
ACTIVE(f(s(0))) → c1(MARK(f(p(s(0)))))
MARK(f(z0)) → c3(ACTIVE(f(z0)), F(mark(z0)), MARK(z0))
MARK(f(f(z0))) → c3(ACTIVE(f(active(f(mark(z0))))), F(mark(f(z0))), MARK(f(z0)))
MARK(f(0)) → c3(ACTIVE(f(active(0))), F(mark(0)), MARK(0))
MARK(f(cons(z0, z1))) → c3(ACTIVE(f(active(cons(mark(z0), z1)))), F(mark(cons(z0, z1))), MARK(cons(z0, z1)))
MARK(f(s(z0))) → c3(ACTIVE(f(active(s(mark(z0))))), F(mark(s(z0))), MARK(s(z0)))
MARK(f(p(z0))) → c3(ACTIVE(f(active(p(mark(z0))))), F(mark(p(z0))), MARK(p(z0)))
MARK(cons(z0, z1)) → c5(ACTIVE(cons(z0, z1)), CONS(mark(z0), z1), MARK(z0))
MARK(cons(f(z0), x1)) → c5(ACTIVE(cons(active(f(mark(z0))), x1)), CONS(mark(f(z0)), x1), MARK(f(z0)))
MARK(cons(0, x1)) → c5(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0))
MARK(cons(cons(z0, z1), x1)) → c5(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1)))
MARK(cons(s(z0), x1)) → c5(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0)))
MARK(cons(p(z0), x1)) → c5(ACTIVE(cons(active(p(mark(z0))), x1)), CONS(mark(p(z0)), x1), MARK(p(z0)))
MARK(cons(x0, x1)) → c5(CONS(mark(x0), x1))
MARK(s(z0)) → c6(ACTIVE(s(z0)), S(mark(z0)), MARK(z0))
MARK(s(f(z0))) → c6(ACTIVE(s(active(f(mark(z0))))), S(mark(f(z0))), MARK(f(z0)))
MARK(s(0)) → c6(ACTIVE(s(active(0))), S(mark(0)), MARK(0))
MARK(s(cons(z0, z1))) → c6(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1)))
MARK(s(s(z0))) → c6(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0)))
MARK(s(p(z0))) → c6(ACTIVE(s(active(p(mark(z0))))), S(mark(p(z0))), MARK(p(z0)))
MARK(p(z0)) → c7(ACTIVE(p(z0)), P(mark(z0)), MARK(z0))
MARK(p(f(z0))) → c7(ACTIVE(p(active(f(mark(z0))))), P(mark(f(z0))), MARK(f(z0)))
MARK(p(0)) → c7(ACTIVE(p(active(0))), P(mark(0)), MARK(0))
MARK(p(cons(z0, z1))) → c7(ACTIVE(p(active(cons(mark(z0), z1)))), P(mark(cons(z0, z1))), MARK(cons(z0, z1)))
MARK(p(s(z0))) → c7(ACTIVE(p(active(s(mark(z0))))), P(mark(s(z0))), MARK(s(z0)))
MARK(p(p(z0))) → c7(ACTIVE(p(active(p(mark(z0))))), P(mark(p(z0))), MARK(p(z0)))
S tuples:
ACTIVE(p(s(z0))) → c2(MARK(z0))
F(mark(z0)) → c8(F(z0))
F(active(z0)) → c9(F(z0))
CONS(mark(z0), z1) → c10(CONS(z0, z1))
CONS(z0, mark(z1)) → c11(CONS(z0, z1))
CONS(active(z0), z1) → c12(CONS(z0, z1))
CONS(z0, active(z1)) → c13(CONS(z0, z1))
S(mark(z0)) → c14(S(z0))
S(active(z0)) → c15(S(z0))
P(mark(z0)) → c16(P(z0))
P(active(z0)) → c17(P(z0))
ACTIVE(f(0)) → c(MARK(cons(0, f(s(0)))))
ACTIVE(f(s(0))) → c1(MARK(f(p(s(0)))))
MARK(f(z0)) → c3(ACTIVE(f(z0)), F(mark(z0)), MARK(z0))
MARK(f(f(z0))) → c3(ACTIVE(f(active(f(mark(z0))))), F(mark(f(z0))), MARK(f(z0)))
MARK(f(0)) → c3(ACTIVE(f(active(0))), F(mark(0)), MARK(0))
MARK(f(cons(z0, z1))) → c3(ACTIVE(f(active(cons(mark(z0), z1)))), F(mark(cons(z0, z1))), MARK(cons(z0, z1)))
MARK(f(s(z0))) → c3(ACTIVE(f(active(s(mark(z0))))), F(mark(s(z0))), MARK(s(z0)))
MARK(f(p(z0))) → c3(ACTIVE(f(active(p(mark(z0))))), F(mark(p(z0))), MARK(p(z0)))
MARK(cons(z0, z1)) → c5(ACTIVE(cons(z0, z1)), CONS(mark(z0), z1), MARK(z0))
MARK(cons(f(z0), x1)) → c5(ACTIVE(cons(active(f(mark(z0))), x1)), CONS(mark(f(z0)), x1), MARK(f(z0)))
MARK(cons(0, x1)) → c5(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0))
MARK(cons(cons(z0, z1), x1)) → c5(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1)))
MARK(cons(s(z0), x1)) → c5(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0)))
MARK(cons(p(z0), x1)) → c5(ACTIVE(cons(active(p(mark(z0))), x1)), CONS(mark(p(z0)), x1), MARK(p(z0)))
MARK(cons(x0, x1)) → c5(CONS(mark(x0), x1))
MARK(s(z0)) → c6(ACTIVE(s(z0)), S(mark(z0)), MARK(z0))
MARK(s(f(z0))) → c6(ACTIVE(s(active(f(mark(z0))))), S(mark(f(z0))), MARK(f(z0)))
MARK(s(0)) → c6(ACTIVE(s(active(0))), S(mark(0)), MARK(0))
MARK(s(cons(z0, z1))) → c6(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1)))
MARK(s(s(z0))) → c6(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0)))
MARK(s(p(z0))) → c6(ACTIVE(s(active(p(mark(z0))))), S(mark(p(z0))), MARK(p(z0)))
MARK(p(z0)) → c7(ACTIVE(p(z0)), P(mark(z0)), MARK(z0))
MARK(p(f(z0))) → c7(ACTIVE(p(active(f(mark(z0))))), P(mark(f(z0))), MARK(f(z0)))
MARK(p(0)) → c7(ACTIVE(p(active(0))), P(mark(0)), MARK(0))
MARK(p(cons(z0, z1))) → c7(ACTIVE(p(active(cons(mark(z0), z1)))), P(mark(cons(z0, z1))), MARK(cons(z0, z1)))
MARK(p(s(z0))) → c7(ACTIVE(p(active(s(mark(z0))))), P(mark(s(z0))), MARK(s(z0)))
MARK(p(p(z0))) → c7(ACTIVE(p(active(p(mark(z0))))), P(mark(p(z0))), MARK(p(z0)))
K tuples:none
Defined Rule Symbols:
active, mark, f, cons, s, p
Defined Pair Symbols:
ACTIVE, F, CONS, S, P, MARK
Compound Symbols:
c2, c8, c9, c10, c11, c12, c13, c14, c15, c16, c17, c, c1, c3, c5, c5, c6, c7
(23) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)
Use narrowing to replace
MARK(
f(
f(
z0))) →
c3(
ACTIVE(
f(
active(
f(
mark(
z0))))),
F(
mark(
f(
z0))),
MARK(
f(
z0))) by
MARK(f(f(x0))) → c3(ACTIVE(f(f(mark(x0)))), F(mark(f(x0))), MARK(f(x0)))
MARK(f(f(z0))) → c3(ACTIVE(f(active(f(z0)))), F(mark(f(z0))), MARK(f(z0)))
MARK(f(f(f(z0)))) → c3(ACTIVE(f(active(f(active(f(mark(z0))))))), F(mark(f(f(z0)))), MARK(f(f(z0))))
MARK(f(f(0))) → c3(ACTIVE(f(active(f(active(0))))), F(mark(f(0))), MARK(f(0)))
MARK(f(f(cons(z0, z1)))) → c3(ACTIVE(f(active(f(active(cons(mark(z0), z1)))))), F(mark(f(cons(z0, z1)))), MARK(f(cons(z0, z1))))
MARK(f(f(s(z0)))) → c3(ACTIVE(f(active(f(active(s(mark(z0))))))), F(mark(f(s(z0)))), MARK(f(s(z0))))
MARK(f(f(p(z0)))) → c3(ACTIVE(f(active(f(active(p(mark(z0))))))), F(mark(f(p(z0)))), MARK(f(p(z0))))
MARK(f(f(x0))) → c3(F(mark(f(x0))))
(24) Obligation:
Complexity Dependency Tuples Problem
Rules:
active(f(0)) → mark(cons(0, f(s(0))))
active(f(s(0))) → mark(f(p(s(0))))
active(p(s(z0))) → mark(z0)
mark(f(z0)) → active(f(mark(z0)))
mark(0) → active(0)
mark(cons(z0, z1)) → active(cons(mark(z0), z1))
mark(s(z0)) → active(s(mark(z0)))
mark(p(z0)) → active(p(mark(z0)))
f(mark(z0)) → f(z0)
f(active(z0)) → f(z0)
cons(mark(z0), z1) → cons(z0, z1)
cons(z0, mark(z1)) → cons(z0, z1)
cons(active(z0), z1) → cons(z0, z1)
cons(z0, active(z1)) → cons(z0, z1)
s(mark(z0)) → s(z0)
s(active(z0)) → s(z0)
p(mark(z0)) → p(z0)
p(active(z0)) → p(z0)
Tuples:
ACTIVE(p(s(z0))) → c2(MARK(z0))
F(mark(z0)) → c8(F(z0))
F(active(z0)) → c9(F(z0))
CONS(mark(z0), z1) → c10(CONS(z0, z1))
CONS(z0, mark(z1)) → c11(CONS(z0, z1))
CONS(active(z0), z1) → c12(CONS(z0, z1))
CONS(z0, active(z1)) → c13(CONS(z0, z1))
S(mark(z0)) → c14(S(z0))
S(active(z0)) → c15(S(z0))
P(mark(z0)) → c16(P(z0))
P(active(z0)) → c17(P(z0))
ACTIVE(f(0)) → c(MARK(cons(0, f(s(0)))))
ACTIVE(f(s(0))) → c1(MARK(f(p(s(0)))))
MARK(f(z0)) → c3(ACTIVE(f(z0)), F(mark(z0)), MARK(z0))
MARK(f(0)) → c3(ACTIVE(f(active(0))), F(mark(0)), MARK(0))
MARK(f(cons(z0, z1))) → c3(ACTIVE(f(active(cons(mark(z0), z1)))), F(mark(cons(z0, z1))), MARK(cons(z0, z1)))
MARK(f(s(z0))) → c3(ACTIVE(f(active(s(mark(z0))))), F(mark(s(z0))), MARK(s(z0)))
MARK(f(p(z0))) → c3(ACTIVE(f(active(p(mark(z0))))), F(mark(p(z0))), MARK(p(z0)))
MARK(cons(z0, z1)) → c5(ACTIVE(cons(z0, z1)), CONS(mark(z0), z1), MARK(z0))
MARK(cons(f(z0), x1)) → c5(ACTIVE(cons(active(f(mark(z0))), x1)), CONS(mark(f(z0)), x1), MARK(f(z0)))
MARK(cons(0, x1)) → c5(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0))
MARK(cons(cons(z0, z1), x1)) → c5(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1)))
MARK(cons(s(z0), x1)) → c5(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0)))
MARK(cons(p(z0), x1)) → c5(ACTIVE(cons(active(p(mark(z0))), x1)), CONS(mark(p(z0)), x1), MARK(p(z0)))
MARK(cons(x0, x1)) → c5(CONS(mark(x0), x1))
MARK(s(z0)) → c6(ACTIVE(s(z0)), S(mark(z0)), MARK(z0))
MARK(s(f(z0))) → c6(ACTIVE(s(active(f(mark(z0))))), S(mark(f(z0))), MARK(f(z0)))
MARK(s(0)) → c6(ACTIVE(s(active(0))), S(mark(0)), MARK(0))
MARK(s(cons(z0, z1))) → c6(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1)))
MARK(s(s(z0))) → c6(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0)))
MARK(s(p(z0))) → c6(ACTIVE(s(active(p(mark(z0))))), S(mark(p(z0))), MARK(p(z0)))
MARK(p(z0)) → c7(ACTIVE(p(z0)), P(mark(z0)), MARK(z0))
MARK(p(f(z0))) → c7(ACTIVE(p(active(f(mark(z0))))), P(mark(f(z0))), MARK(f(z0)))
MARK(p(0)) → c7(ACTIVE(p(active(0))), P(mark(0)), MARK(0))
MARK(p(cons(z0, z1))) → c7(ACTIVE(p(active(cons(mark(z0), z1)))), P(mark(cons(z0, z1))), MARK(cons(z0, z1)))
MARK(p(s(z0))) → c7(ACTIVE(p(active(s(mark(z0))))), P(mark(s(z0))), MARK(s(z0)))
MARK(p(p(z0))) → c7(ACTIVE(p(active(p(mark(z0))))), P(mark(p(z0))), MARK(p(z0)))
MARK(f(f(x0))) → c3(ACTIVE(f(f(mark(x0)))), F(mark(f(x0))), MARK(f(x0)))
MARK(f(f(z0))) → c3(ACTIVE(f(active(f(z0)))), F(mark(f(z0))), MARK(f(z0)))
MARK(f(f(f(z0)))) → c3(ACTIVE(f(active(f(active(f(mark(z0))))))), F(mark(f(f(z0)))), MARK(f(f(z0))))
MARK(f(f(0))) → c3(ACTIVE(f(active(f(active(0))))), F(mark(f(0))), MARK(f(0)))
MARK(f(f(cons(z0, z1)))) → c3(ACTIVE(f(active(f(active(cons(mark(z0), z1)))))), F(mark(f(cons(z0, z1)))), MARK(f(cons(z0, z1))))
MARK(f(f(s(z0)))) → c3(ACTIVE(f(active(f(active(s(mark(z0))))))), F(mark(f(s(z0)))), MARK(f(s(z0))))
MARK(f(f(p(z0)))) → c3(ACTIVE(f(active(f(active(p(mark(z0))))))), F(mark(f(p(z0)))), MARK(f(p(z0))))
MARK(f(f(x0))) → c3(F(mark(f(x0))))
S tuples:
ACTIVE(p(s(z0))) → c2(MARK(z0))
F(mark(z0)) → c8(F(z0))
F(active(z0)) → c9(F(z0))
CONS(mark(z0), z1) → c10(CONS(z0, z1))
CONS(z0, mark(z1)) → c11(CONS(z0, z1))
CONS(active(z0), z1) → c12(CONS(z0, z1))
CONS(z0, active(z1)) → c13(CONS(z0, z1))
S(mark(z0)) → c14(S(z0))
S(active(z0)) → c15(S(z0))
P(mark(z0)) → c16(P(z0))
P(active(z0)) → c17(P(z0))
ACTIVE(f(0)) → c(MARK(cons(0, f(s(0)))))
ACTIVE(f(s(0))) → c1(MARK(f(p(s(0)))))
MARK(f(z0)) → c3(ACTIVE(f(z0)), F(mark(z0)), MARK(z0))
MARK(f(0)) → c3(ACTIVE(f(active(0))), F(mark(0)), MARK(0))
MARK(f(cons(z0, z1))) → c3(ACTIVE(f(active(cons(mark(z0), z1)))), F(mark(cons(z0, z1))), MARK(cons(z0, z1)))
MARK(f(s(z0))) → c3(ACTIVE(f(active(s(mark(z0))))), F(mark(s(z0))), MARK(s(z0)))
MARK(f(p(z0))) → c3(ACTIVE(f(active(p(mark(z0))))), F(mark(p(z0))), MARK(p(z0)))
MARK(cons(z0, z1)) → c5(ACTIVE(cons(z0, z1)), CONS(mark(z0), z1), MARK(z0))
MARK(cons(f(z0), x1)) → c5(ACTIVE(cons(active(f(mark(z0))), x1)), CONS(mark(f(z0)), x1), MARK(f(z0)))
MARK(cons(0, x1)) → c5(ACTIVE(cons(active(0), x1)), CONS(mark(0), x1), MARK(0))
MARK(cons(cons(z0, z1), x1)) → c5(ACTIVE(cons(active(cons(mark(z0), z1)), x1)), CONS(mark(cons(z0, z1)), x1), MARK(cons(z0, z1)))
MARK(cons(s(z0), x1)) → c5(ACTIVE(cons(active(s(mark(z0))), x1)), CONS(mark(s(z0)), x1), MARK(s(z0)))
MARK(cons(p(z0), x1)) → c5(ACTIVE(cons(active(p(mark(z0))), x1)), CONS(mark(p(z0)), x1), MARK(p(z0)))
MARK(cons(x0, x1)) → c5(CONS(mark(x0), x1))
MARK(s(z0)) → c6(ACTIVE(s(z0)), S(mark(z0)), MARK(z0))
MARK(s(f(z0))) → c6(ACTIVE(s(active(f(mark(z0))))), S(mark(f(z0))), MARK(f(z0)))
MARK(s(0)) → c6(ACTIVE(s(active(0))), S(mark(0)), MARK(0))
MARK(s(cons(z0, z1))) → c6(ACTIVE(s(active(cons(mark(z0), z1)))), S(mark(cons(z0, z1))), MARK(cons(z0, z1)))
MARK(s(s(z0))) → c6(ACTIVE(s(active(s(mark(z0))))), S(mark(s(z0))), MARK(s(z0)))
MARK(s(p(z0))) → c6(ACTIVE(s(active(p(mark(z0))))), S(mark(p(z0))), MARK(p(z0)))
MARK(p(z0)) → c7(ACTIVE(p(z0)), P(mark(z0)), MARK(z0))
MARK(p(f(z0))) → c7(ACTIVE(p(active(f(mark(z0))))), P(mark(f(z0))), MARK(f(z0)))
MARK(p(0)) → c7(ACTIVE(p(active(0))), P(mark(0)), MARK(0))
MARK(p(cons(z0, z1))) → c7(ACTIVE(p(active(cons(mark(z0), z1)))), P(mark(cons(z0, z1))), MARK(cons(z0, z1)))
MARK(p(s(z0))) → c7(ACTIVE(p(active(s(mark(z0))))), P(mark(s(z0))), MARK(s(z0)))
MARK(p(p(z0))) → c7(ACTIVE(p(active(p(mark(z0))))), P(mark(p(z0))), MARK(p(z0)))
MARK(f(f(x0))) → c3(ACTIVE(f(f(mark(x0)))), F(mark(f(x0))), MARK(f(x0)))
MARK(f(f(z0))) → c3(ACTIVE(f(active(f(z0)))), F(mark(f(z0))), MARK(f(z0)))
MARK(f(f(f(z0)))) → c3(ACTIVE(f(active(f(active(f(mark(z0))))))), F(mark(f(f(z0)))), MARK(f(f(z0))))
MARK(f(f(0))) → c3(ACTIVE(f(active(f(active(0))))), F(mark(f(0))), MARK(f(0)))
MARK(f(f(cons(z0, z1)))) → c3(ACTIVE(f(active(f(active(cons(mark(z0), z1)))))), F(mark(f(cons(z0, z1)))), MARK(f(cons(z0, z1))))
MARK(f(f(s(z0)))) → c3(ACTIVE(f(active(f(active(s(mark(z0))))))), F(mark(f(s(z0)))), MARK(f(s(z0))))
MARK(f(f(p(z0)))) → c3(ACTIVE(f(active(f(active(p(mark(z0))))))), F(mark(f(p(z0)))), MARK(f(p(z0))))
MARK(f(f(x0))) → c3(F(mark(f(x0))))
K tuples:none
Defined Rule Symbols:
active, mark, f, cons, s, p
Defined Pair Symbols:
ACTIVE, F, CONS, S, P, MARK
Compound Symbols:
c2, c8, c9, c10, c11, c12, c13, c14, c15, c16, c17, c, c1, c3, c5, c5, c6, c7, c3
(25) CpxTrsMatchBoundsTAProof (EQUIVALENT transformation)
A linear upper bound on the runtime complexity of the TRS R could be shown with a Match-Bound[TAB_LEFTLINEAR,TAB_NONLEFTLINEAR] (for contructor-based start-terms) of 1.
The compatible tree automaton used to show the Match-Boundedness (for constructor-based start-terms) is represented by:
final states : [1, 2, 3, 4, 5, 6]
transitions:
00() → 0
active0(0) → 1
mark0(0) → 2
f0(0) → 3
cons0(0, 0) → 4
s0(0) → 5
p0(0) → 6
01() → 7
active1(7) → 2
(26) BOUNDS(O(1), O(n^1))